home *** CD-ROM | disk | FTP | other *** search
- import java.io.DataInputStream;
- import java.io.IOException;
- import java.net.MalformedURLException;
- import java.net.URL;
-
- public class CReadAction extends CAction {
- static final int READ_SECTION = 1;
- protected String m_strFilename;
- protected int m_nFlags = 0;
- protected int m_nVariableID = 0;
- protected String m_strDelimiter;
- protected String m_strSection;
-
- boolean DoAction() {
- String var1 = "";
- URL var2 = null;
- String var3 = "";
- if (this.m_strFilename.length() > 0) {
- if (Globals.CUR_COURSE != null) {
- var1 = Globals.CUR_COURSE.ConstructFileName(this.m_strFilename);
- }
-
- try {
- var2 = new URL(Globals.thePresView.getCodeBase(), var1);
- } catch (MalformedURLException var9) {
- System.out.println("Bad URL: " + var1);
- }
-
- try {
- var3 = (String)var2.getContent();
- } catch (IOException var8) {
- System.out.println("Error: The file " + var1 + " could not be read");
- }
-
- if ((this.m_nFlags & 1) != 0 && this.m_strSection.length() > 0 && this.m_strDelimiter.length() > 0 && (var3 = this.ReadSection(var3)) == null) {
- return false;
- }
-
- CVariable var4 = Utils.SearchAllVariables(this.m_nVariableID);
- if (var4 != null) {
- if (var4.IsStringType() != 0) {
- var4.SetValue(var3);
- } else if (var4.IsNumericType() != 0) {
- double var5;
- try {
- var5 = Double.valueOf(var3);
- } catch (NumberFormatException var7) {
- var5 = (double)0.0F;
- }
-
- var4.SetValue(var5);
- }
- }
- }
-
- return true;
- }
-
- String ReadSection(String var1) {
- int var2 = 0;
- int var3 = 0;
- String var4 = null;
- String var5 = Utils.InsertVariablesInString(this.m_strSection);
- if ((var2 = var1.indexOf(var5)) != -1 && (var2 = var1.indexOf(10, var2)) != -1) {
- ++var2;
- var3 = var2;
-
- do {
- var3 = var1.indexOf(this.m_strDelimiter, var3);
- } while(var3 != -1 && var1.charAt(var3 - 1) != '\r' && var1.charAt(var3 - 1) != '\n');
-
- if (var3 == -1) {
- var3 = var1.length();
- } else {
- while(var3 > var2 && var1.charAt(var3) != '\r') {
- --var3;
- }
- }
-
- var4 = var1.substring(var2, var3);
- }
-
- return var4;
- }
-
- boolean LoadFromFile(DataInputStream var1) {
- this.m_nFlags = FileLoad.ReadCPlusInt(var1);
- this.m_nVariableID = (char)FileLoad.ReadCPlusInt(var1);
- this.m_strFilename = FileLoad.ReadCString(var1);
- if (Globals.CUR_COURSE.m_nFileVersion > 3) {
- this.m_strDelimiter = FileLoad.ReadCString(var1);
- this.m_strSection = FileLoad.ReadCString(var1);
- }
-
- return super.LoadFromFile(var1);
- }
-
- public CReadAction() {
- super(43);
- }
- }
-